package nav

/*
#include<stdint.h>
#include<stdbool.h>
extern void nav_rcMeshLoaderObj_Delete(void * c_this);
extern void nav_rcMeshLoaderObj_DeleteArray(void * c_this);
extern void * nav_rcMeshLoaderObj_getNormals(void * c_this);
extern int nav_rcMeshLoaderObj_getTriCount(void * c_this);
extern void * nav_rcMeshLoaderObj_getTris(void * c_this);
extern int nav_rcMeshLoaderObj_getVertCount(void * c_this);
extern void * nav_rcMeshLoaderObj_getVerts(void * c_this);
extern void * nav_rcMeshLoaderObj_IndexArray(void * c_this,long n);
extern void* nav_NewrcMeshLoaderObj();
extern void * nav_NewRcMeshLoaderObjPtrArray(long n);

*/
import "C"
import "unsafe"
import "gitee.com/hasika/cgo"

var _ unsafe.Pointer
var _ cgo.NotUsed

type RcMeshLoaderObjPtr uintptr

/*
public void Delete()
*/
func (p RcMeshLoaderObjPtr) Delete() {
	var wrap_this unsafe.Pointer
	wrap_this = unsafe.Pointer(p)
	C.nav_rcMeshLoaderObj_Delete(wrap_this)
}

/*
void DeleteArray()
*/
func (p RcMeshLoaderObjPtr) DeleteArray() {
	var wrap_this unsafe.Pointer
	wrap_this = unsafe.Pointer(p)
	C.nav_rcMeshLoaderObj_DeleteArray(wrap_this)
}

/*
public float const * getNormals() const
*/
func (p RcMeshLoaderObjPtr) GetNormals() *float32 {
	var wrap_this unsafe.Pointer
	wrap_this = unsafe.Pointer(p)
	wrap_out := C.nav_rcMeshLoaderObj_getNormals(wrap_this)
	go_out := (*float32)(unsafe.Pointer(wrap_out))
	return go_out
}

/*
public int getTriCount() const
*/
func (p RcMeshLoaderObjPtr) GetTriCount() int32 {
	var wrap_this unsafe.Pointer
	wrap_this = unsafe.Pointer(p)
	wrap_out := C.nav_rcMeshLoaderObj_getTriCount(wrap_this)
	go_out := int32(wrap_out)
	return go_out
}

/*
public int const * getTris() const
*/
func (p RcMeshLoaderObjPtr) GetTris() *int32 {
	var wrap_this unsafe.Pointer
	wrap_this = unsafe.Pointer(p)
	wrap_out := C.nav_rcMeshLoaderObj_getTris(wrap_this)
	go_out := (*int32)(unsafe.Pointer(wrap_out))
	return go_out
}

/*
public int getVertCount() const
*/
func (p RcMeshLoaderObjPtr) GetVertCount() int32 {
	var wrap_this unsafe.Pointer
	wrap_this = unsafe.Pointer(p)
	wrap_out := C.nav_rcMeshLoaderObj_getVertCount(wrap_this)
	go_out := int32(wrap_out)
	return go_out
}

/*
public float const * getVerts() const
*/
func (p RcMeshLoaderObjPtr) GetVerts() *float32 {
	var wrap_this unsafe.Pointer
	wrap_this = unsafe.Pointer(p)
	wrap_out := C.nav_rcMeshLoaderObj_getVerts(wrap_this)
	go_out := (*float32)(unsafe.Pointer(wrap_out))
	return go_out
}

/*
rcMeshLoaderObj * IndexArray(long n)
*/
func (p RcMeshLoaderObjPtr) IndexArray(n int) uintptr {
	var wrap_this unsafe.Pointer
	wrap_this = unsafe.Pointer(p)
	wrap_out := C.nav_rcMeshLoaderObj_IndexArray(wrap_this, C.long(n))
	go_out := uintptr(wrap_out)
	return go_out
}

/*
public rcMeshLoaderObj()
*/
func NewRcMeshLoaderObj() cgo.GoManagedPtr[RcMeshLoaderObjPtr] {
	wrap_out := C.nav_NewrcMeshLoaderObj()
	go_out := cgo.MakePtr[cgo.GoManagedPtr[RcMeshLoaderObjPtr]](uintptr(wrap_out))
	return go_out
}

/*
rcMeshLoaderObj * NewRcMeshLoaderObjPtrArray(long n)
*/
func NewRcMeshLoaderObjPtrArray(n int) cgo.GoManagedPtr[cgo.Array[RcMeshLoaderObjPtr]] {
	wrap_out := C.nav_NewRcMeshLoaderObjPtrArray(C.long(n))
	go_out := cgo.MakePtr[cgo.GoManagedPtr[cgo.Array[RcMeshLoaderObjPtr]]](uintptr(wrap_out))
	return go_out
}
